import { Post } from '../../config.js'

class Api {
  /**
   * 返回权限列表
   * @param {object} params 参数对象
   * @return {promise} api
   */
  showMenu () {
    const data = {
      Copyright: 'v1',
      Interface: 'Auth',
      Command: 'showMenu'
    }
    return Post(data)
  }
  /**
   * 管理员列表（后台用户管理列表）
   * @param {object} params 参数对象
   * @desc {string} acc_id 身份验证参数,登陆时返回
   * @desc {string} page 页码
   * @desc {string} page_size 每页个数
   * @desc {string} search 查询数据
   * @desc {string} sort_field 排序字段
   * @desc {string} sort_type 0正序
   * @return {promise} api
   */
  adminList (params) {
    const data = {
      Copyright: 'v1',
      Interface: 'Auth',
      Command: 'adminList',
      Params: params
    }
    return Post(data)
  }
  /**
   * 用户禁用恢复
   * @param {object} params 参数对象
   * @desc {string} acc_id 身份验证参数,登陆时返回
   * @desc {string} ids 用户id
   * @desc {string} status 用户状态:1锁定,0正常
   * @return {promise} api
   */
  alterAdminUserStatus (params) {
    const data = {
      Copyright: 'v1',
      Interface: 'Auth',
      Command: 'alterAdminUserStatus',
      Params: params
    }
    return Post(data)
  }
  /**
   * 可用用户组类型(下拉框使用)
   * @param {object} params 参数对象
   * @desc {string} acc_id 身份验证参数,登陆时返回
   * @return {promise} api
   */
  adminGroupType (params) {
    const data = {
      Copyright: 'v1',
      Interface: 'Auth',
      Command: 'adminGroupType',
      Params: params
    }
    return Post(data)
  }
  /**
   * 添加新的后台用户
   * @param {object} params 参数对象
   * @desc {string} acc_id 身份验证参数,登陆时返回
   * @desc {string} realname 后台用户名称
   * @desc {string} phone 后台用户手机号
   * @desc {string} passed 后台用户密码
   * @desc {string} group_id 后台用户所属用户组id
   * @return {promise} api
   */
  addAdminUser (params) {
    const data = {
      Copyright: 'v1',
      Interface: 'Auth',
      Command: 'addAdminUser',
      Params: params
    }
    return Post(data)
  }
  /**
   * 编辑后台用户
   * @param {object} params 参数对象
   * @desc {string} acc_id 身份验证参数,登陆时返回
   * @desc {string} id 用户id
   * @desc {string} realname 后台用户名称
   * @desc {string} phone 后台用户手机号
   * @desc {string} passed 后台用户密码
   * @desc {string} group_id 后台用户所属用户组id
   * @return {promise} api
   */
  editAdminUser (params) {
    const data = {
      Copyright: 'v1',
      Interface: 'Auth',
      Command: 'editAdminUser',
      Params: params
    }
    return Post(data)
  }
  /**
   * 用户组列表
   * @param {object} params 参数对象
   * @desc {string} acc_id 身份验证参数,登陆时返回
   * @desc {string} page 页码
   * @desc {string} page_size 每页个数
   * @desc {string} sort_field 排序字段
   * @desc {string} sort_type 0正序
   * @return {promise} api
   */
  adminGroup (params) {
    const data = {
      Copyright: 'v1',
      Interface: 'Auth',
      Command: 'adminGroup',
      Params: params
    }
    return Post(data)
  }
  /**
   * 用户组禁用恢复
   * @param {object} params 参数对象
   * @desc {string} acc_id 身份验证参数,登陆时返回
   * @desc {string} ids 用户id
   * @desc {string} status 用户状态:1锁定,0正常
   * @return {promise} api
   */
  alterAdminGroupStatus (params) {
    const data = {
      Copyright: 'v1',
      Interface: 'Auth',
      Command: 'alterAdminGroupStatus',
      Params: params
    }
    return Post(data)
  }
  /**
   * 添加新的后台用户组
   * @param {object} params 参数对象
   * @desc {string} acc_id 身份验证参数,登陆时返回
   * @desc {string} title 后台用户组名称
   * @return {promise} api
   */
  addAdminGroup (params) {
    const data = {
      Copyright: 'v1',
      Interface: 'Auth',
      Command: 'addAdminGroup',
      Params: params
    }
    return Post(data)
  }
  /**
   * 编辑后台用户组
   * @param {object} params 参数对象
   * @desc {string} acc_id 身份验证参数,登陆时返回
   * @desc {string} group_id 后台用户组id
   * @desc {string} title 后台用户组名称
   * @return {promise} api
   */
  editAdminGroup (params) {
    const data = {
      Copyright: 'v1',
      Interface: 'Auth',
      Command: 'editAdminGroup',
      Params: params
    }
    return Post(data)
  }
  /**
   * 获得用户组所拥有的权限菜单
   * @param {object} params 参数对象
   * @desc {string} acc_id 身份验证参数,登陆时返回
   * @desc {string} group_id 后台用户组id
   * @return {promise} api
   */
  groupAccess (params) {
    const data = {
      Copyright: 'v1',
      Interface: 'Auth',
      Command: 'groupAccess',
      Params: params
    }
    return Post(data)
  }
  /**
   * 编辑后台用户组权限菜单
   * @param {object} params 参数对象
   * @desc {string} acc_id 身份验证参数,登陆时返回
   * @desc {string} group_id 后台用户组id
   * @desc {string} rules 权限菜单id
   * @return {promise} api
   */
  groupSetaccess (params) {
    const data = {
      Copyright: 'v1',
      Interface: 'Auth',
      Command: 'groupSetaccess',
      Params: params
    }
    return Post(data)
  }
  /**
   * 权限管理列表
   * @param {object} params 参数对象
   * @desc {string} acc_id 身份验证参数,登陆时返回
   * @return {promise} api
   */
  adminRule (params) {
    const data = {
      Copyright: 'v1',
      Interface: 'Auth',
      Command: 'adminRule',
      Params: params
    }
    return Post(data)
  }
  /**
   * 设置权限菜单显示或者隐藏
   * @param {object} params 参数对象
   * @desc {string} acc_id 身份验证参数,登陆时返回
   * @desc {string} id 权限菜单id
   * @desc {string} menustatus 状态:1正常,0禁用
   * @return {promise} api
   */
  ruleState (params) {
    const data = {
      Copyright: 'v1',
      Interface: 'Auth',
      Command: 'ruleState',
      Params: params
    }
    return Post(data)
  }
  /**
   * 设置权限菜单排序
   * @param {object} params 参数对象
   * @desc {string} acc_id 身份验证参数,登陆时返回
   * @desc {string} id 权限菜单id
   * @desc {string} sort 排序
   * @return {promise} api
   */
  ruleOrder (params) {
    const data = {
      Copyright: 'v1',
      Interface: 'Auth',
      Command: 'ruleOrder',
      Params: params
    }
    return Post(data)
  }
  /**
   * 删除权限菜单
   * @param {object} params 参数对象
   * @desc {string} acc_id 身份验证参数,登陆时返回
   * @desc {string} id 权限菜单id
   * @return {promise} api
   */
  ruleDel (params) {
    const data = {
      Copyright: 'v1',
      Interface: 'Auth',
      Command: 'ruleDel',
      Params: params
    }
    return Post(data)
  }
  /**
   * 添加新的权限
   * @param {object} params 参数对象
   * @desc {string} acc_id 身份验证参数,登陆时返回
   * @desc {string} pid 父级权限ID(如果添加的为顶级菜单，则传0)
   * @desc {string} title 权限名称
   * @desc {string} href 控制器/方法,例如Sys/sysList
   * @desc {string} menustatus 菜单状态,1开启,0关闭
   * @desc {string} sort 排序
   * @return {promise} api
   */
  addRule (params) {
    const data = {
      Copyright: 'v1',
      Interface: 'Auth',
      Command: 'addRule',
      Params: params
    }
    return Post(data)
  }
  /**
   * 编辑权限
   * @param {object} params 参数对象
   * @desc {string} acc_id 身份验证参数,登陆时返回
   * @desc {string} id 权限ID
   * @desc {string} pid 父级权限ID(如果添加的为顶级菜单，则传0)
   * @desc {string} title 权限名称
   * @desc {string} href 控制器/方法,例如Sys/sysList
   * @desc {string} menustatus 菜单状态,1开启,0关闭
   * @desc {string} sort 排序
   * @return {promise} api
   */
  editRule (params) {
    const data = {
      Copyright: 'v1',
      Interface: 'Auth',
      Command: 'editRule',
      Params: params
    }
    return Post(data)
  }
}

const SettingPermissionService = new Api()
export default SettingPermissionService
